package com.tarena.lbs.content.controller;

import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.model.Result;
import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.content.pojo.param.ArticleActionParam;
import com.tarena.lbs.content.pojo.param.ArticleContentParam;
import com.tarena.lbs.content.pojo.query.ArticleQuery;
import com.tarena.lbs.content.pojo.vo.ArticleActionPageResultVO;
import com.tarena.lbs.content.pojo.vo.ArticleVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Set;

/**
 * 文章业务模块接口
 */
@Slf4j
@RestController
@Api(tags = "文章相关功能接口")
public class ArticleController {


    @ApiOperation("文章分页列表查询")
    @GetMapping("/admin/content/article/list")
    public Result<PageResult<ArticleVO>> pageList(ArticleQuery articleQuery)
        throws BusinessException{


        return null;
    }


    @ApiOperation("文章保存")
    @PostMapping("/admin/content/article/insert")
    public Result<Void> addArticle(ArticleContentParam param)
        throws BusinessException{

        return Result.success();
    }


    @ApiOperation("文章标签集合")
    @GetMapping("/admin/content/article/getArticleLabel")
    public Result<Set<String>> articleLabels(ArticleQuery articleQuery) throws BusinessException {

        return null;
    }


    @ApiOperation("文章详情")
    @GetMapping("/admin/content/article/get")
    public Result<ArticleVO> articleDetail(String id)throws BusinessException{
        return null;
    }


    @ApiOperation("用户行为记录")
    @PostMapping("/admin/content/article/behavior")
    public Result<Void> articleBehavior(ArticleActionParam param)
        throws BusinessException{
        return Result.success();
    }


    @ApiOperation("给某个登录的用户 查询他已经点赞 收藏 访问过的文章")
    @GetMapping("admin/content/article/getBehaviorList")
    public Result<ArticleActionPageResultVO> getBehaviorLists(ArticleQuery query)
        throws BusinessException{
        return null;
    }
}
